- title: "External status check API breaking changes"
  announcement_milestone: "14.8"
  announcement_date: "2022-02-22"
  removal_milestone: "15.0"
  removal_date: "2022-05-22"
  breaking_change: true
  reporter: stkerr
  body: |
    The [external status check API](https://docs.gitlab.com/ee/api/status_checks.html) was originally implemented to
    support pass-by-default requests to mark a status check as passing. Pass-by-default requests are now removed.
    Specifically, the following are removed:

    - Requests that do not contain the `status` field.
    - Requests that have the `status` field set to `approved`.

    From GitLab 15.0, status checks are only set to a passing state if the `status` field is both present
    and set to `passed`. Requests that:

    - Do not contain the `status` field will be rejected with a `400` error. For more information, see [the relevant issue](https://gitlab.com/gitlab-org/gitlab/-/issues/338827).
    - Contain any value other than `passed`, such as `approved`, cause the status check to fail. For more information, see [the relevant issue](https://gitlab.com/gitlab-org/gitlab/-/issues/339039).

    To align with this change, API calls to list external status checks also return the value of `passed` rather than
    `approved` for status checks that have passed.
  stage: "Manage"
  issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/339039
